<?php

	require_once(realpath(dirname(__FILE__)) . "/Article.class.php");
	require_once(realpath(dirname(__FILE__)) . "/Pays.class.php");
	require_once(realpath(dirname(__FILE__)) . "/Adresse.class.php");
	require_once(realpath(dirname(__FILE__)) . "/../fonctions/divers.php");

	// Déninition du panier
	
	class Panier {

		var $nbart;
		var $tabarticle;
		
		function __construct(){
			$this->nbart = 0;
			$this->tabarticle=array();
		}

		function ajouter($ref, $quantite, $tdeclidisp="", $append, $nouveau, $parent){
			
			$existe = 0;
			
            for($i=0; $i<$this->nbart+1; $i++)
                if(isset($this->tabarticle[$i]))
                	if(isset($this->tabarticle[$i]->produit->ref) && $this->tabarticle[$i]->produit->ref == $ref){
                	      if(! count($tdeclidisp)) {$existe = 1; $indice = $i;}
              			  for($j=0; $j<count($this->tabarticle[$i]->perso); $j++){

                   if($this->tabarticle[$i]->perso[$j] == $tdeclidisp[$j]) {$existe = 1; $indice = $i;}
                   else { $existe = 0; break; }
                                        
                }
                                                
                                        
            }
            
			
			if(!$existe || $nouveau == 1){ 				
				$this->tabarticle[$this->nbart] = new Article($ref, $quantite, $tdeclidisp);
				$this->nbart++;
			}
			else if($existe && $append)
				$this->tabarticle[$indice]->quantite += $quantite;

			
		}	
		
		function supprimer($id){
			
			if(! $this->tabarticle[$id]) return;
			
			$this->tabarticle[$id]="";
			
			for($i=$id+1; $i<$this->nbart+1; $i++)
				if(isset($this->tabarticle[$i]))
					$this->tabarticle[$i-1] = $this->tabarticle[$i];
		
			$this->nbart--;
			unset($this->tabarticle[$this->nbart]);
			
			
		}
		
		function modifier($article, $quantite){
			$this->tabarticle[$article]->quantite = $quantite;
		
		}
		
		
		function total($tva=1, $remise=0){
			$total = 0;
			$taxe = 0;

			for($i=0; $i<$this->nbart; $i++){

				$quantite =  $this->tabarticle[$i]->quantite;
				if( ! $this->tabarticle[$i]->produit->promo)
					$prix = $this->tabarticle[$i]->produit->prix;
				else $prix = $this->tabarticle[$i]->produit->prix2;

				$prodtva = $this->tabarticle[$i]->produit->tva;

                $taxe += ($prix - ($prix/(1+$prodtva/100))) * $quantite;           
				$total += $prix*$quantite;		

			}

			$total -= $remise;
			
			$pays = new Pays();

			if($_SESSION['navig']->adresse != "" && $_SESSION['navig']->adresse != 0){
				$adr = new Adresse();
				$adr->charger($_SESSION['navig']->adresse);
				$pays->charger($adr->pays);
			}	

			else 
				$pays->charger($_SESSION['navig']->client->pays);
				
			if($tva && $pays->tva != "" && ! $pays->tva)
				$total -= $taxe;
			else
				if($tva == 0)
					$total -= $taxe;
			
			return round($total, 2);
		}	

		function totalecotaxe(){
			$ecotaxe = 0;

			for($i=0; $i<$this->nbart; $i++)
				$ecotaxe += $this->tabarticle[$i]->quantite * $this->tabarticle[$i]->produit->ecotaxe;
	
			return round($ecotaxe, 2);			
			
		}
		
		function totaltva(){
			return $this->total() - $this->total(0);
			
		}
		
		function poids(){
			$poids = 0;
		
			for($i=0; $i<$this->nbart; $i++) 
				$poids+=round($this->tabarticle[$i]->produit->poids * $this->tabarticle[$i]->quantite, 2);
		
			return $poids;
		}	

		function nbart(){
			$nbart = 0;
		
			for($i=0; $i<$this->nbart; $i++) 
				$nbart+=$this->tabarticle[$i]->quantite;
		
			return $nbart;
		}	
		
		function unitetr(){
			$unitetr = 0;
		
			for($i=0; $i<$this->nbart; $i++)
				$unitetr+=round($this->tabarticle[$i]->produit->unitetr * $this->tabarticle[$i]->quantite, 2);
	
			return $unitetr;
		}			


				
		function recupArticles(){
			return $tabarticle;		
		}

	}
?>